package com.hs.srm.admin.modules.orders.service;

import com.baomidou.mybatisplus.service.IService;
import com.hs.srm.admin.modules.orders.entity.ScmPoItemEntity;
import com.hs.srm.admin.modules.orders.vo.ScmPoItemVo;
import com.hs.srm.common.utils.PageUtils;
import com.hs.srm.common.utils.R;
import com.landray.kmss.km.review.webservice.Exception_Exception;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 采购订单行项目Service接口
 *
 * @author Sunnykid
 * @date 2019年3月17日
 */
public interface ScmPoItemService extends IService<ScmPoItemEntity> {

    // 根据条件查询
    PageUtils selectDetailPage(Map<String, Object> params);

    // 根据订单号查询订单行项目
    List<ScmPoItemEntity> getByPoNo(String poNo);

    ScmPoItemVo selectByIdVo(@Param("pkId") String pkId);

    ScmPoItemEntity selectById(@Param("pkId") String pkId);

    boolean updateById(ScmPoItemEntity scmPoItemEntity);

    ScmPoItemEntity selectByPoItem(String poNo, String itemPo);

    /**
     * 保存文件上传路径
     *
     * @return
     */
    public Integer saveUploadFilePath(HttpServletRequest request, String filePath);

    //更新订单变更信息
    boolean updateOrderInfoById(ScmPoItemEntity itemEntity);

    //删除订单
    String deleteOrders(String type, String[] itemIds);

    //通过OA通知下单人已发货
    void noticeApplier(List<ScmPoItemEntity> itemEntityList, boolean isBatchDelivery) throws Exception_Exception;

    int getSendSAPCountById(String pkId);

    R deliverOrder(List<String> pkIds) throws IOException;
}
